﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//#include <stdlib.h>
//#include <time.h>
//do..while循环
//注意点:do...while循环的循环体一定会执行一次
//实践1:在屏幕上打印1~10的值
//int main()
//{
//	int i = 1;
//	do
//	{
//		printf("%d ", i);
//		i++;
//	} while (i <= 10);
//
//	return 0;
//}

//实践2:输⼊⼀个正整数，计算这个整数是几位数？
//int main()
//{
//	int n = 0;
//	int count = 0;//计数
//	scanf("%d", &n);
//	
//	do
//	{
//		n = n / 10; 
//		count++;
//	} while (n);//0说明该数字所有位都记录完毕
//
//	printf("%d", count);
//	return 0;
//}

////break和continue
//int main()
//{
//	//在while中的break
//	//代码执行时，遇到break，会直接跳出当层循环
//	//int i = 1;
//	//while (i <= 10)
//	//{
//	//	if (i == 5)
//	//		break;
//	//	printf("%d ", i);
//	//	i++;
//	//}
//	// 
//	//在while中的continue
//	//代码执行时，如果遇到continue，会直接跳过接下来的语句，进入条件判断
//	//while中的continue，如果在循环变量的调整之前，会导致死循环
//	//例如:
//	//int i = 1;
//	//while (i <= 10)
//	//{
//	//	if (i == 5)
//	//		continue;
//	//	printf("%d ", i);
//	//	i++;
//	//}
//
//	//在for循环中的break
//	//效果与while内的相同
//	//for (int i = 1;i <= 10;++i)
//	//{
//	//	if (i == 5)
//	//		break;
//	//	printf("%d ", i);
//	//}
//
//	//在for循环中的continue
//	//代码执行时，如果遇到continue，会直接跳过接下来的语句，进入变量调整(常规情况)
//	//所以在for循环内的continue语句，一般不会造成死循环
//	//for (int i = 1;i <= 10;++i)
//	//{
//	//	if (i == 5)
//	//		continue;
//	//	printf("%d ", i);
//	//}
//
//	//do...while内的break和continue与while中的相同
//	//break跳出本层循环，continue则是跳过剩余语句，来到了条件判断
//	//int i = 1;
//	//do
//	//{
//	//	if (i == 5)
//	//		//break; 
//	//		//continue;
//	//	printf("%d ", i);
//	//	++i;
//	//} while (i <= 10);
//
//
//	return 0;
//}

//int main()
//{ 
//	for (int i = 100;i <= 200;++i) //生成100-200之间的数字
//	{
//		int flag = 0;//0表示是素数,1表示不是素数
//		for (int j = 2;j <= i - 1;++j)//生成2~n-1之间的数字
//		{
//			if (i % j == 0) //有1和本身以外的因子，就不是素数
//			{
//				flag = 1;
//				break;
//			}
//		}
//		if (flag == 0)
//			printf("%d ", i);
//	}
//	return 0;
//}

//goto语句
//int main()
//{
//	ptf:
//	printf("hello");
//	goto ptf;
//
//
//	return 0;
//}

//rand,srand,time函数结合使用来生成1-100之间的随机数
//int main()
//{
//	printf("%d", time(NULL));
//	srand((unsigned int)time(NULL));
//	printf("%d", rand()%100 + 1); 
//
//	return 0;
//}


//void game()
//{
//	//生成随机数
//	int num = rand() % 100 + 1;
//	int input = 0;
//	
//	while (1)
//	{
//		printf("input number-->");
//		scanf("%d", &input);
//		if (input > num) //输入的数字大于随机值
//		{
//			printf("a big number\n");
//		}
//		else if (input < num) //输入的数字小于随机值
//		{
//			printf("a small number\n");
//		}
//		else
//		{
//			printf("congradulations\n");
//			break;
//		}
//	}
//
//}
////猜数字小游戏
//int main()
//{
//	int option = 0;
//	srand((unsigned int)time(NULL)); //将不断变化的时间戳设置成种子
//	//生成游戏界面
//	printf("1-->play\n");
//	printf("0-->exit\n");
//	//用户选择
//	do 
//	{
//		printf("choose->");
//		scanf("%d", &option);
//		switch (option)
//		{
//		case 0: //0退出游戏
//			printf("exit succeed\n");
//			break;
//		case 1: //1进入游戏
//			printf("enter game\n");
//			game();
//			break;
//		default: //其它情况输出错误信息
//			printf("input error\n");
//			break;
//		}
//
//	} while (option);
//
//
//	return 0;
//}


//一维数组
//int main()
//{
//	//创建
//	//类型名 数组名[元素个数]
//	//int arr1[10]; //未初始化
//	//int arr2[10] = { 1,2,3,4 };//未完全初始化-->前四个初始化为1,2,3,4,后续元素用0补充
//	//int arr3[10] = { 1,2,3,4,5,6,7,8,9,0 };//完全初始化
//
//	//数组去掉书名后，就是数组的数据类型，arr4的类型就是int [10]
//	//int arr4[10] = { 1,2,3,4 };
//	//printf("%u", sizeof(arr4));
//	//printf("%u", sizeof(int[10]));
//
//	//数组下标从0开始到n-1结束
//	int arr3[5] = { 1, 2, 3, 4, 5 };
//	int length = sizeof(arr3) / sizeof(arr3[0]);
//
//	//for (int i = 0;i < length;++i)
//	//{
//	//	scanf("%d", &arr3[i]);
//	//}
//	//for (int i = 0;i < length;++i)
//	//{
//	//	printf("%d ", arr3[i]);
//	//}
//	for (int i = 0;i < length;++i)
//		printf("%p\n", &arr3[i]);
//
//	//计算数组元素的办法
//	//printf("arr_size = %zd\n", sizeof(arr3)); //数组大小
//	//printf("element_size = %zd\n", sizeof(arr3[0])); //一个元素大小
//	//printf("arr_length = %zd\n", sizeof(arr3) / sizeof(arr3[0])); //数组长
//
//	return 0;
//}

//int main()
//{
//	for (int i = 1;i <= 9;++i)
//	{
//		for (int j = 1;j <= 9;++j)
//		{
//			printf("%d*%d=%d     ", i, j, i * j);
//		}
//		printf("\n");
//	}
//	return 0;
//}

//求最大公约数-->辗转相除
int main()
{
	int a = 0;
	int b = 0;
	int c = 0;

	scanf("%d%d", &a, &b);
	while (a % b)
	{
		c = a % b;
		a = b;
		b = c;
	}

	printf("最大公约数:%d", b);
	return 0;
}